<?php

/**
 * grid actions.
 *
 * @package    dnevnik
 * @subpackage grid
 * @author     Your name here
 * @version    SVN: $Id: actions.class.php 12479 2008-10-31 10:54:40Z fabien $
 */
class gridActions extends sfActions
{
 /**
  * Executes index action
  *
  * @param sfRequest $request A request object
  */
  public function executeTip(sfWebRequest $request)
  {
      $arr = array();
      $nbrows = 0;
      switch ($request->getParameter('tip'))
      {
          case 'direktor':
            $tips = DirektorPeer::getTips();
            break;

      }

      foreach($tips as $key => $value)
      {
        $rec['id'] = $key;
        $rec['naziv'] = $value;
        $arr[] = $rec;
        $nbrows ++;
      }
      $jsonresult = json_encode($arr);
      return $this->renderText('({"total":"'.$nbrows.'","rows":'.$jsonresult.'})');
  }

  public function executeSkola(sfWebRequest $request)
  {
      $nbrows = 0;
      $arr = array();
      $credentials = new Credentials();
      $skolas = $credentials->getSkolaNazivs();
      foreach($skolas as $id => $naziv)
      {
        $rec['id'] = $id;
        $rec['naziv'] = $naziv;
        $arr[] = $rec;
        $nbrows ++;
      }
      $jsonresult = json_encode($arr);
      return $this->renderText('({"total":"'.$nbrows.'","rows":'.$jsonresult.'})');
  }

  public function executeRazred(sfWebRequest $request)
  {
      $nbrows = 0;
      $arr = array();
      $razred_tmps = array();
      $skolas = DbFinder::from('Skola')->select('Id')->where('SkolaId', $request->getParameter('skola_id'))->find();
      $credentials = new Credentials();
      $razreds = $credentials->getRazredSkolaNazivsList($request->getParameter('skola_id'));
      if(count($skolas))
      {
         foreach($skolas as $skola)
         {
           $razred_tmps = $credentials->getRazredSkolaNazivsList($skola);
           foreach($razred_tmps as $id => $name)
             $razreds[$id] = $name;
         }
      }

      foreach($razreds as $id => $naziv)
      {
        $rec['id'] = $id;
        $rec['naziv'] = $naziv;
        $arr[] = $rec;
        $nbrows ++;
      }
      $jsonresult = json_encode($arr);
      return $this->renderText('({"total":"'.$nbrows.'","rows":'.$jsonresult.'})');
  }

  public function executeGetEdit(sfWebRequest $request)
  {
      $nbrows = 0;
      $arr = array();
      $ucenik = UcenikPeer::getJoin()->withColumn('Profil.EMail', 'Email')->withColumn('Profil.Pol', 'Pol')->withColumn('Profil.Adresa', 'Adresa')->withColumn('Profil.Telefon', 'Telefon')->withColumn('Profil.Mobilni', 'Mobilni')->where('Ucenik.Id', $request->getParameter('ucenik_id'))->findOne();
      $roditelj = DbFinder::from('Roditelj')->join('Profil')->withColumn('Profil.EMail', 'Email')->withColumn('Profil.Ime', 'ImeOca')->withColumn('Profil.Prezime', 'PrezimeOca')->withColumn('Profil.Username', 'Username')->withColumn('Profil.PlainPassword', 'Password')->withColumn('Profil.Mobilni', 'Mobilni1')->findPk($ucenik->getRoditeljId());

      $rec['ime'] = $ucenik->getColumn('Ime');
      $rec['prezime'] = $ucenik->getColumn('Prezime');
      $rec['pol'] = $ucenik->getColumn('Pol');
      $rec['adresa'] = $ucenik->getColumn('Adresa');
      $rec['telefon'] = $ucenik->getColumn('Telefon');
      $rec['mobilni'] = $ucenik->getColumn('Mobilni');

      $rec['red_br'] = $ucenik->getRedBr();
      $rec['id'] = $ucenik->getId();
      $rec['razred_id'] = $ucenik->getRazredId();
      $rec['datum_rod'] = $ucenik->getDatumRod();
      $rec['mesto_rod'] = $ucenik->getMestoRod();
      $rec['opstina_rod'] = $ucenik->getOpstinaRod();
      $rec['drzava_rod'] = $ucenik->getDrzavaRod();
      $rec['jmbg'] = $ucenik->getJmbg();

      $rec['ime_otac'] = $roditelj->getColumn('ImeOca');
      $rec['prezime_otac'] = $roditelj->getColumn('PrezimeOca');
      $rec['ime_majka'] = $roditelj->getImeMajka();
      $rec['prezime_majka'] = $roditelj->getPrezimeMajka();
      $rec['ime_staratelj'] = $roditelj->getImeStaratelj();
      $rec['prezime_staratelj'] = $roditelj->getPrezimeStaratelj();
      $rec['mobilni1'] = $roditelj->getColumn('Mobilni1');
      $rec['mobilni2'] = $roditelj->getMobilni2();
      $rec['username'] = $roditelj->getColumn('Username');
      $rec['password'] = $roditelj->getColumn('Password');
      $rec['email'] = $roditelj->getColumn('Email');

      $arr[] = $rec;
      $nbrows ++;

      $jsonresult = json_encode($arr);
      return $this->renderText('({"total":"'.$nbrows.'","rows":'.$jsonresult.'})');
  }

  public function executeRoditelj(sfWebRequest $request)
  {
      $nbrows = 0;
      $arr = array();
      $roditeljs = DbFinder::from('Roditelj')->leftJoin('Roditelj.Id', 'Ucenik.RoditeljId')->leftJoin('Ucenik.RazredId', 'Razred.Id')->withColumn('Profil.Ime', 'ImeOtac')->withColumn('Profil.Prezime', 'PrezimeOtac')->withColumn('Razred.Razred', 'Razred')->withColumn('Razred.Slovo', 'Slovo')->where('SkolaId', $request->getParameter('skola_id'))->find();
      foreach($roditeljs as $roditelj)
      {
        $rec['id'] = $roditelj->getId();
        $rec['naziv'] = $this->imeRod($roditelj).' - '.$roditelj->getColumn('Razred').'/'.$roditelj->getColumn('Slovo');
        $arr[] = $rec;
        $nbrows ++;
      }
      $jsonresult = json_encode($arr);
      return $this->renderText('({"total":"'.$nbrows.'","rows":'.$jsonresult.'})');
  }

  private function imeRod($roditelj)
  {
     if($roditelj->getColumn('ImeOtac') != '')
       return $roditelj->getColumn('PrezimeOtac').' '.$roditelj->getColumn('ImeOtac');
     else if($roditelj->getImeMajka() != '')
       return $roditelj->getPrezimeMajka().' '.$roditelj->getImeMajka();
     else if($roditelj->getImeStaratelj() != '')
       return $roditelj->getPrezimeStaratelj().' '.$roditelj->getImeStaratelj();
  }
}